package com.zsrt.day20170505.queue;
/**
*@author jzh
*@创建时间 2017年5月5日下午3:29:54
*类说明：
*/
public class Queue {
	
	Node head;
	
	
	public Queue(Node head) {
		this.head = head;
	}


	/**
	 * 向队列中添加1个节点
	 * @param node
	 */
	public void push(Node node){
		Node p=this.head;
		while(p.getNext()!=null){
			p=p.getNext();
		}
		p.setNext(node);
		
	}
	
	
	/**
	 * 从队列中删除1个元素 每次删除的都是头节点的下一个节点
	 * @return
	 */
	public Node pop(){
		
		Node p=this.head;
		Node jieguo=p.getNext();
		if(p.getNext()!=null){
			p.setNext(p.getNext().getNext());
		}
		return jieguo;
	}
	
	
	/**
	 * 打印队列中所有的元素
	 */
	public void printQueue(){
		Node p=this.head;
		while(p.getNext()!=null){
			System.out.println(p.getNext().getData());
			p=p.getNext();
		}
		
	}
	
	
	/**
	 * 把updateNode的值修改成updateValue
	 * @param updateNode
	 * @param updateValue
	 */
	public void updateNode(Node updateNode, int updateValue){
		Node p=this.head;
		while(p.getNext()!=null){
			if(p.getNext().getData()==updateNode.getData()){
				p.getNext().setData(updateValue);
			}
			p=p.getNext();
		}
		
		
	}
}
